package com.dyj.tiktok.domain.vo;

import com.alibaba.fastjson.annotation.JSONField;
import com.dyj.common.domain.vo.BaseVo;
import lombok.*;
import lombok.experimental.Accessors;

import java.io.Serial;
import java.io.Serializable;

/**
 * @author danmo
 * @date 2024-04-07 14:56
 **/

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
public class TikTokInfoVo extends BaseVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    private User user;

    @Data
    public static class User{
        /**
         * 用户在当前应用的唯一标识
         */
        @JSONField(name = "open_id")
        private String openId;

        /**
         * 用户在当前开发者账号下的唯一标识（未绑定开发者账号没有该字段）
         */
        @JSONField(name = "union_id")
        private String unionId;

        /**
         * 头像url
         */
        @JSONField(name = "avatar_url")
        private String avatarUrl;

        /**
         * 头像url（100x100 尺寸）
         */
        @JSONField(name = "avatar_url_100")
        private String avatarUrl100;

        /**
         * 大头像url
         */
        @JSONField(name = "avatar_large_url")
        private String avatarLargeUrl;

        /**
         * 个人资料名称
         */
        @JSONField(name = "display_name")
        private String displayName;

        /**
         * 描述
         */
        @JSONField(name = "bio_description")
        private String bioDescription;

        /**
         * 个人资料页面的链接
         */
        @JSONField(name = "profile_deep_link")
        private String profileDeepLink;

        /**
         * 是否验证
         */
        @JSONField(name = "is_verified")
        private Boolean isVerified;

        /**
         * 用户名
         */
        private String username;

        /**
         * 粉丝数
         */
        @JSONField(name = "follower_count")
        private Integer followerCount;

        /**
         * 关注人数
         */
        @JSONField(name = "following_count")
        private Integer followingCount;

        /**
         * 点赞数
         */
        @JSONField(name = "likes_count")
        private Integer likesCount;

        /**
         * 视频数量
         */
        @JSONField(name = "video_count")
        private Integer videoCount;
    }

}
